// Types.h
 
// Typy pouzivane v modele sveta

#ifndef TYPES_H
#define TYPES_H

// Typy vlajok
enum FlagType
{
	NoLandmark = 0,
//	1       2
	GOAL_L, GOAL_R,
//  3  4   5   6   7   8   9
	C, CT, CB, LT, LB, RT, RB,
//  10   11   12   13   14   15
	PLT, PLC, PLB, PRT, PRC, PRB,
//  16   17   18   19
	GLT, GLB, GRT, GRB,
//  20    21    22    23    24    25  26    27    28    29    30 
	TL50, TL40, TL30, TL20, TL10, T0, TR10, TR20, TR30, TR40, TR50,
//  31    32    33    34    35    36  37    38    39    40    41
	BL50, BL40, BL30, BL20, BL10, B0, BR10, BR20, BR30, BR40, BR50,
//  42    43    44    45  46    47    48
	LT30, LT20, LT10, L0, LB10, LB20, LB30, 
//  49    50    51    52  53    54    55
	RT30, RT20, RT10, R0, RB10, RB20, RB30,
//  56
	FLAG_MAX
};

// Typ ciary
enum LineType
{
	NoLine = 0,
	Top,
	Bottom,
	Left,
	Right
};

// Hracie mody (aj z inych timov)
enum PlayMode
{
	PM_Null = 0,		PM_BeforeKickOff,		PM_TimeOver,		PM_PlayOn, 
	PM_KickOff_Our,		PM_KickOff_Their,		PM_KickIn_Our,		PM_KickIn_Their,
	PM_FreeKick_Our,	PM_FreeKick_Their,		PM_CornerKick_Our,	PM_CornerKick_Their, 
	PM_GoalKick_Our,	PM_GoalKick_Their,		PM_AfterGoal_Our,	PM_AfterGoal_Their, 
	PM_DropBall,		PM_Offside_Our,			PM_Offside_Their,

	// [I.Noda:00/05/13] added for 3D viewer/commentator/small league
	PM_PenaltyKick_Our,				PM_PenaltyKick_Their,	PM_FirstHalfOver,		PM_Pause,
	PM_HumanJudge,					PM_Foul_Charge_Our,		PM_Foul_Charge_Their, 
	PM_Foul_Push_Our,				PM_Foul_Push_Their, 
	PM_Foul_MultipleAttacker_Our,	PM_Foul_MultipleAttacker_Their,
	PM_Foul_BallOut_Our,			PM_Foul_BallOut_Their,
	
	// Added by (probably) Roztoce
	PM_GoalieCatch_Our, PM_GoalieCatch_Their,	PM_Foul_Our,		PM_Foul_Their,
	PM_HalfTime,		PM_TimeUp,				PM_TimeExtended,
	
	// Added by Stjupit Dox
	PM_FreeKickFault_Our,			PM_FreeKickFault_Their,
	PM_BackPass_Our,				PM_BackPass_Their,
    PM_CatchFault_Our,				PM_CatchFault_Their,
    PM_IndFreeKick_Our,				PM_IndFreeKick_Their, 

	// Maximum
	PM_MAX
};

// Realna strana u hracov
enum RealSide
{
	RIGHT,
	LEFT,
};

// Relativna strana u hracov
enum Side
{
	OUR,
	THEIR,
	UNKNOWN
};

// Sirka pohladu (zorneho uhla)
enum ViewWidth
{
	NARROW_VIEW,	// (45 stupnov)
	NORMAL_VIEW,	// (90 stupnov)
	WIDE_VIEW		// (180 stupnov)
};

// Kvalita pohladu (zorneho uhla)
enum ViewQuality
{
	LOW_QUALITY,
	HIGH_QUALITY
};

#endif // TYPES_H
